A transactional database application, such as Microsoft SQL Server or Microsoft Exchange Server, typically writes transactions to transaction logs prior to committing the transactions to the database. The database application then commits the transactions in the transaction logs to the database as permitted.
An administrator typically protects the data of the transactional database application by directing data protection software to periodically perform a full backup (or other data protection operation) of the database and the transaction logs, as well as additional incremental backups (or other data protection operations) to capture changed data. For example, the administrator may direct the software to perform a full snapshot copy of the database and the transaction logs. The administrator may then direct the software to perform additional snapshots of the database and the transaction logs to capture data that has changed, such as additional transaction logs, since the full snapshot copy was performed.
In order to recover the transactional database application as it existed at a specific point in time, the administrator typically directs the software to recover the database and then “play” the necessary transaction logs. Playing (alternatively referred to as replaying or applying) transaction logs refers to committing transactions in the transaction logs to the database. This brings the transactional database application to the state it was in at the specific point in time. However, once the administrator has recovered the transactional database application, the administrator is typically not able to play additional transaction logs to bring the transactional database application to a state at a later point in time. Stated another way, once a database is put into a state corresponding to a particular point in time in order to recover data from the database as the data existed at that particular point in time, the administrator cannot put the database into another state corresponding to another point in time in order to recover data from the database as the data existed at the other point in time.
The need exists for a system that overcomes the above problems, as well as one that provides additional benefits. Overall, the examples herein of some prior or related systems and their associated limitations are intended to be illustrative and not exclusive. Other limitations of existing or prior systems will become apparent to those of skill in the art upon reading the following Detailed Description.